import { PiniaPluginContext } from "pinia";


export function persistedstate (context:PiniaPluginContext){
  // 有几个模块执行几次
  console.log('初始化的时候执行',context.store.$id)

  // 根据模块名，拿到对应的localStorage
  const currentState = JSON.parse(
    localStorage.getItem(context.store.$id) || '{}'
  )

  // 把我们的数据放在pinia对应的模块里面
  context.store.$patch(currentState)

  // 每次state发生变化，保存至localStorage
  // 两个参数 第一个是当前修改store的上下文 第二个是当前修改的状态
  context.store.$subscribe((_store,state) => {
    console.log(_store,state);
    localStorage.setItem(_store.storeId,JSON.stringify(state))
  },
  {
    // 组件卸载依赖还在
    detached:true
  })
}